<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-pragma">{-# LANGUAGE CPP, ScopedTypeVariables, LambdaCase #-}</span><span>
</span><span id="line-2"></span><span>
</span><span id="line-3"></span><span class="hs-comment">-- | Defines a simple exception type and utilities to throw it. The</span><span>
</span><span id="line-4"></span><span class="hs-comment">-- 'PlainGhcException' type is a subset of the 'GHC.Utils.Panic.GhcException'</span><span>
</span><span id="line-5"></span><span class="hs-comment">-- type.  It omits the exception constructors that involve</span><span>
</span><span id="line-6"></span><span class="hs-comment">-- pretty-printing via 'GHC.Utils.Outputable.SDoc'.</span><span>
</span><span id="line-7"></span><span class="hs-comment">--</span><span>
</span><span id="line-8"></span><span class="hs-comment">-- There are two reasons for this:</span><span>
</span><span id="line-9"></span><span class="hs-comment">--</span><span>
</span><span id="line-10"></span><span class="hs-comment">-- 1. To avoid import cycles / use of boot files. &quot;GHC.Utils.Outputable&quot; has</span><span>
</span><span id="line-11"></span><span class="hs-comment">-- many transitive dependencies. To throw exceptions from these</span><span>
</span><span id="line-12"></span><span class="hs-comment">-- modules, the functions here can be used without introducing import</span><span>
</span><span id="line-13"></span><span class="hs-comment">-- cycles.</span><span>
</span><span id="line-14"></span><span class="hs-comment">--</span><span>
</span><span id="line-15"></span><span class="hs-comment">-- 2. To reduce the number of modules that need to be compiled to</span><span>
</span><span id="line-16"></span><span class="hs-comment">-- object code when loading GHC into GHCi. See #13101</span><span>
</span><span id="line-17"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">GHC.Utils.Panic.Plain</span><span>
</span><span id="line-18"></span><span>  </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#PlainGhcException"><span class="hs-identifier">PlainGhcException</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-19"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#showPlainGhcException"><span class="hs-identifier">showPlainGhcException</span></a></span><span>
</span><span id="line-20"></span><span>
</span><span id="line-21"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier">panic</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#sorry"><span class="hs-identifier">sorry</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#pgmError"><span class="hs-identifier">pgmError</span></a></span><span>
</span><span id="line-22"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#cmdLineError"><span class="hs-identifier">cmdLineError</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#cmdLineErrorIO"><span class="hs-identifier">cmdLineErrorIO</span></a></span><span>
</span><span id="line-23"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#assertPanic"><span class="hs-identifier">assertPanic</span></a></span><span>
</span><span id="line-24"></span><span>
</span><span id="line-25"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#progName"><span class="hs-identifier">progName</span></a></span><span>
</span><span id="line-26"></span><span>  </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span class="hs-cpp">

#include &quot;HsVersions.h&quot;
</span><span>
</span><span id="line-30"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Settings.Config.html"><span class="hs-identifier">GHC.Settings.Config</span></a></span><span>
</span><span id="line-31"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Exception.html"><span class="hs-identifier">GHC.Utils.Exception</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">Exception</span></span><span>
</span><span id="line-32"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/GHC.Stack.html#"><span class="hs-identifier">GHC.Stack</span></a></span><span>
</span><span id="line-33"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Prelude.html"><span class="hs-identifier">GHC.Prelude</span></a></span><span>
</span><span id="line-34"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/System.Environment.html#"><span class="hs-identifier">System.Environment</span></a></span><span>
</span><span id="line-35"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/System.IO.Unsafe.html#"><span class="hs-identifier">System.IO.Unsafe</span></a></span><span>
</span><span id="line-36"></span><span>
</span><span id="line-37"></span><span class="hs-comment">-- | This type is very similar to 'GHC.Utils.Panic.GhcException', but it omits</span><span>
</span><span id="line-38"></span><span class="hs-comment">-- the constructors that involve pretty-printing via</span><span>
</span><span id="line-39"></span><span class="hs-comment">-- 'GHC.Utils.Outputable.SDoc'.  Due to the implementation of 'fromException'</span><span>
</span><span id="line-40"></span><span class="hs-comment">-- for 'GHC.Utils.Panic.GhcException', this type can be caught as a</span><span>
</span><span id="line-41"></span><span class="hs-comment">-- 'GHC.Utils.Panic.GhcException'.</span><span>
</span><span id="line-42"></span><span class="hs-comment">--</span><span>
</span><span id="line-43"></span><span class="hs-comment">-- Note that this should only be used for throwing exceptions, not for</span><span>
</span><span id="line-44"></span><span class="hs-comment">-- catching, as 'GHC.Utils.Panic.GhcException' will not be converted to this</span><span>
</span><span id="line-45"></span><span class="hs-comment">-- type when catching.</span><span>
</span><span id="line-46"></span><span class="hs-keyword">data</span><span> </span><span id="PlainGhcException"><span class="annot"><a href="GHC.Utils.Panic.Plain.html#PlainGhcException"><span class="hs-identifier hs-var">PlainGhcException</span></a></span></span><span>
</span><span id="line-47"></span><span>  </span><span class="hs-comment">-- | Some other fatal signal (SIGHUP,SIGTERM)</span><span>
</span><span id="line-48"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span id="PlainSignal"><span class="annot"><a href="GHC.Utils.Panic.Plain.html#PlainSignal"><span class="hs-identifier hs-var">PlainSignal</span></a></span></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>
</span><span id="line-49"></span><span>
</span><span id="line-50"></span><span>  </span><span class="hs-comment">-- | Prints the short usage msg after the error</span><span>
</span><span id="line-51"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="PlainUsageError"><span class="annot"><a href="GHC.Utils.Panic.Plain.html#PlainUsageError"><span class="hs-identifier hs-var">PlainUsageError</span></a></span></span><span>        </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-52"></span><span>
</span><span id="line-53"></span><span>  </span><span class="hs-comment">-- | A problem with the command line arguments, but don't print usage.</span><span>
</span><span id="line-54"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="PlainCmdLineError"><span class="annot"><a href="GHC.Utils.Panic.Plain.html#PlainCmdLineError"><span class="hs-identifier hs-var">PlainCmdLineError</span></a></span></span><span>      </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-55"></span><span>
</span><span id="line-56"></span><span>  </span><span class="hs-comment">-- | The 'impossible' happened.</span><span>
</span><span id="line-57"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="PlainPanic"><span class="annot"><a href="GHC.Utils.Panic.Plain.html#PlainPanic"><span class="hs-identifier hs-var">PlainPanic</span></a></span></span><span>             </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-58"></span><span>
</span><span id="line-59"></span><span>  </span><span class="hs-comment">-- | The user tickled something that's known not to work yet,</span><span>
</span><span id="line-60"></span><span>  </span><span class="hs-comment">--   but we're not counting it as a bug.</span><span>
</span><span id="line-61"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="PlainSorry"><span class="annot"><a href="GHC.Utils.Panic.Plain.html#PlainSorry"><span class="hs-identifier hs-var">PlainSorry</span></a></span></span><span>             </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-62"></span><span>
</span><span id="line-63"></span><span>  </span><span class="hs-comment">-- | An installation problem.</span><span>
</span><span id="line-64"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="PlainInstallationError"><span class="annot"><a href="GHC.Utils.Panic.Plain.html#PlainInstallationError"><span class="hs-identifier hs-var">PlainInstallationError</span></a></span></span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-65"></span><span>
</span><span id="line-66"></span><span>  </span><span class="hs-comment">-- | An error in the user's code, probably.</span><span>
</span><span id="line-67"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span id="PlainProgramError"><span class="annot"><a href="GHC.Utils.Panic.Plain.html#PlainProgramError"><span class="hs-identifier hs-var">PlainProgramError</span></a></span></span><span>      </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-68"></span><span>
</span><span id="line-69"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680778679"><span id="local-6989586621680778681"><span id="local-6989586621680778683"><span class="annot"><a href="../../base/src/GHC.Exception.Type.html#Exception"><span class="hs-identifier hs-type">Exception</span></a></span><span> </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#PlainGhcException"><span class="hs-identifier hs-type">PlainGhcException</span></a></span></span></span></span><span>
</span><span id="line-70"></span><span>
</span><span id="line-71"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621680778673"><span id="local-6989586621680778675"><span class="annot"><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-type">Show</span></a></span><span> </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#PlainGhcException"><span class="hs-identifier hs-type">PlainGhcException</span></a></span></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-72"></span><span>  </span><span id="local-6989586621680778671"><span class="annot"><span class="annottext">showsPrec :: Int -&gt; PlainGhcException -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#showsPrec"><span class="hs-identifier hs-var hs-var hs-var hs-var">showsPrec</span></a></span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680778669"><span class="annot"><span class="annottext">e :: PlainGhcException
</span><a href="#local-6989586621680778669"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#PlainProgramError"><span class="hs-identifier hs-type">PlainProgramError</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PlainGhcException -&gt; ShowS
</span><a href="GHC.Utils.Panic.Plain.html#showPlainGhcException"><span class="hs-identifier hs-var">showPlainGhcException</span></a></span><span> </span><span class="annot"><span class="annottext">PlainGhcException
</span><a href="#local-6989586621680778669"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-73"></span><span>  </span><span class="annot"><a href="../../base/src/GHC.Show.html#showsPrec"><span class="hs-identifier hs-var">showsPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680778668"><span class="annot"><span class="annottext">e :: PlainGhcException
</span><a href="#local-6989586621680778668"><span class="hs-identifier hs-var">e</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#PlainCmdLineError"><span class="hs-identifier hs-type">PlainCmdLineError</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#showString"><span class="hs-identifier hs-var">showString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;&lt;command line&gt;: &quot;</span></span><span> </span><span class="annot"><span class="annottext">ShowS -&gt; ShowS -&gt; ShowS
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">PlainGhcException -&gt; ShowS
</span><a href="GHC.Utils.Panic.Plain.html#showPlainGhcException"><span class="hs-identifier hs-var">showPlainGhcException</span></a></span><span> </span><span class="annot"><span class="annottext">PlainGhcException
</span><a href="#local-6989586621680778668"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-74"></span><span>  </span><span class="annot"><a href="../../base/src/GHC.Show.html#showsPrec"><span class="hs-identifier hs-var">showsPrec</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span> </span><span id="local-6989586621680778665"><span class="annot"><span class="annottext">PlainGhcException
</span><a href="#local-6989586621680778665"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#showString"><span class="hs-identifier hs-var">showString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="GHC.Utils.Panic.Plain.html#progName"><span class="hs-identifier hs-var">progName</span></a></span><span> </span><span class="annot"><span class="annottext">ShowS -&gt; ShowS -&gt; ShowS
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#showString"><span class="hs-identifier hs-var">showString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;: &quot;</span></span><span> </span><span class="annot"><span class="annottext">ShowS -&gt; ShowS -&gt; ShowS
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">PlainGhcException -&gt; ShowS
</span><a href="GHC.Utils.Panic.Plain.html#showPlainGhcException"><span class="hs-identifier hs-var">showPlainGhcException</span></a></span><span> </span><span class="annot"><span class="annottext">PlainGhcException
</span><a href="#local-6989586621680778665"><span class="hs-identifier hs-var">e</span></a></span><span>
</span><span id="line-75"></span><span>
</span><span id="line-76"></span><span class="hs-comment">-- | The name of this GHC.</span><span>
</span><span id="line-77"></span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#progName"><span class="hs-identifier hs-type">progName</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-78"></span><span id="progName"><span class="annot"><span class="annottext">progName :: String
</span><a href="GHC.Utils.Panic.Plain.html#progName"><span class="hs-identifier hs-var hs-var">progName</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IO String -&gt; String
forall a. IO a -&gt; a
</span><a href="../../base/src/GHC.IO.Unsafe.html#unsafePerformIO"><span class="hs-identifier hs-var">unsafePerformIO</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">IO String
</span><a href="../../base/src/System.Environment.html#getProgName"><span class="hs-identifier hs-var">getProgName</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-79"></span><span class="hs-pragma">{-# NOINLINE</span><span> </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#progName"><span class="hs-pragma hs-type">progName</span></a></span><span> </span><span class="hs-pragma">#-}</span><span>
</span><span id="line-80"></span><span>
</span><span id="line-81"></span><span class="hs-comment">-- | Short usage information to display when we are given the wrong cmd line arguments.</span><span>
</span><span id="line-82"></span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#short_usage"><span class="hs-identifier hs-type">short_usage</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span>
</span><span id="line-83"></span><span id="short_usage"><span class="annot"><span class="annottext">short_usage :: String
</span><a href="GHC.Utils.Panic.Plain.html#short_usage"><span class="hs-identifier hs-var hs-var">short_usage</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Usage: For basic information, try the `--help' option.&quot;</span></span><span>
</span><span id="line-84"></span><span>
</span><span id="line-85"></span><span class="hs-comment">-- | Append a description of the given exception to this string.</span><span>
</span><span id="line-86"></span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#showPlainGhcException"><span class="hs-identifier hs-type">showPlainGhcException</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#PlainGhcException"><span class="hs-identifier hs-type">PlainGhcException</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Show.html#ShowS"><span class="hs-identifier hs-type">ShowS</span></a></span><span>
</span><span id="line-87"></span><span id="showPlainGhcException"><span class="annot"><span class="annottext">showPlainGhcException :: PlainGhcException -&gt; ShowS
</span><a href="GHC.Utils.Panic.Plain.html#showPlainGhcException"><span class="hs-identifier hs-var hs-var">showPlainGhcException</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-88"></span><span>  </span><span class="hs-glyph">\</span><span class="hs-glyph">case</span><span>
</span><span id="line-89"></span><span>    </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#PlainSignal"><span class="hs-identifier hs-type">PlainSignal</span></a></span><span> </span><span id="local-6989586621680778661"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680778661"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#showString"><span class="hs-identifier hs-var">showString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;signal: &quot;</span></span><span> </span><span class="annot"><span class="annottext">ShowS -&gt; ShowS -&gt; ShowS
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; ShowS
forall a. Show a =&gt; a -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#shows"><span class="hs-identifier hs-var">shows</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680778661"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-90"></span><span>    </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#PlainUsageError"><span class="hs-identifier hs-type">PlainUsageError</span></a></span><span> </span><span id="local-6989586621680778659"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778659"><span class="hs-identifier hs-var">str</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#showString"><span class="hs-identifier hs-var">showString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778659"><span class="hs-identifier hs-var">str</span></a></span><span> </span><span class="annot"><span class="annottext">ShowS -&gt; ShowS -&gt; ShowS
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#showChar"><span class="hs-identifier hs-var">showChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\n'</span></span><span> </span><span class="annot"><span class="annottext">ShowS -&gt; ShowS -&gt; ShowS
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#showString"><span class="hs-identifier hs-var">showString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="GHC.Utils.Panic.Plain.html#short_usage"><span class="hs-identifier hs-var">short_usage</span></a></span><span>
</span><span id="line-91"></span><span>    </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#PlainCmdLineError"><span class="hs-identifier hs-type">PlainCmdLineError</span></a></span><span> </span><span id="local-6989586621680778657"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778657"><span class="hs-identifier hs-var">str</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#showString"><span class="hs-identifier hs-var">showString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778657"><span class="hs-identifier hs-var">str</span></a></span><span>
</span><span id="line-92"></span><span>    </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#PlainPanic"><span class="hs-identifier hs-type">PlainPanic</span></a></span><span> </span><span id="local-6989586621680778656"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778656"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">ShowS -&gt; ShowS
</span><a href="#local-6989586621680778655"><span class="hs-identifier hs-var">panicMsg</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#showString"><span class="hs-identifier hs-var">showString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778656"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-93"></span><span>    </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#PlainSorry"><span class="hs-identifier hs-type">PlainSorry</span></a></span><span> </span><span id="local-6989586621680778654"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778654"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">ShowS -&gt; ShowS
</span><a href="#local-6989586621680778653"><span class="hs-identifier hs-var">sorryMsg</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#showString"><span class="hs-identifier hs-var">showString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778654"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-94"></span><span>    </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#PlainInstallationError"><span class="hs-identifier hs-type">PlainInstallationError</span></a></span><span> </span><span id="local-6989586621680778652"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778652"><span class="hs-identifier hs-var">str</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#showString"><span class="hs-identifier hs-var">showString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778652"><span class="hs-identifier hs-var">str</span></a></span><span>
</span><span id="line-95"></span><span>    </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#PlainProgramError"><span class="hs-identifier hs-type">PlainProgramError</span></a></span><span> </span><span id="local-6989586621680778651"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778651"><span class="hs-identifier hs-var">str</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#showString"><span class="hs-identifier hs-var">showString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778651"><span class="hs-identifier hs-var">str</span></a></span><span>
</span><span id="line-96"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-97"></span><span>    </span><span class="annot"><a href="#local-6989586621680778653"><span class="hs-identifier hs-type">sorryMsg</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Show.html#ShowS"><span class="hs-identifier hs-type">ShowS</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Show.html#ShowS"><span class="hs-identifier hs-type">ShowS</span></a></span><span>
</span><span id="line-98"></span><span>    </span><span id="local-6989586621680778653"><span class="annot"><span class="annottext">sorryMsg :: ShowS -&gt; ShowS
</span><a href="#local-6989586621680778653"><span class="hs-identifier hs-var hs-var">sorryMsg</span></a></span></span><span> </span><span id="local-6989586621680778650"><span class="annot"><span class="annottext">ShowS
</span><a href="#local-6989586621680778650"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-99"></span><span>        </span><span class="annot"><span class="annottext">String -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#showString"><span class="hs-identifier hs-var">showString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;sorry! (unimplemented feature or known bug)\n&quot;</span></span><span>
</span><span id="line-100"></span><span>      </span><span class="annot"><span class="annottext">ShowS -&gt; ShowS -&gt; ShowS
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#showString"><span class="hs-identifier hs-var">showString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;  (GHC version &quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="../../ghc-boot/src/GHC.Version.html#cProjectVersion"><span class="hs-identifier hs-var">cProjectVersion</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;:\n\t&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-101"></span><span>      </span><span class="annot"><span class="annottext">ShowS -&gt; ShowS -&gt; ShowS
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">ShowS
</span><a href="#local-6989586621680778650"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="annot"><span class="annottext">ShowS -&gt; ShowS -&gt; ShowS
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#showString"><span class="hs-identifier hs-var">showString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\n&quot;</span></span><span>
</span><span id="line-102"></span><span>
</span><span id="line-103"></span><span>    </span><span class="annot"><a href="#local-6989586621680778655"><span class="hs-identifier hs-type">panicMsg</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Show.html#ShowS"><span class="hs-identifier hs-type">ShowS</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Show.html#ShowS"><span class="hs-identifier hs-type">ShowS</span></a></span><span>
</span><span id="line-104"></span><span>    </span><span id="local-6989586621680778655"><span class="annot"><span class="annottext">panicMsg :: ShowS -&gt; ShowS
</span><a href="#local-6989586621680778655"><span class="hs-identifier hs-var hs-var">panicMsg</span></a></span></span><span> </span><span id="local-6989586621680778648"><span class="annot"><span class="annottext">ShowS
</span><a href="#local-6989586621680778648"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-105"></span><span>        </span><span class="annot"><span class="annottext">String -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#showString"><span class="hs-identifier hs-var">showString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;panic! (the 'impossible' happened)\n&quot;</span></span><span>
</span><span id="line-106"></span><span>      </span><span class="annot"><span class="annottext">ShowS -&gt; ShowS -&gt; ShowS
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#showString"><span class="hs-identifier hs-var">showString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;  (GHC version &quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="../../ghc-boot/src/GHC.Version.html#cProjectVersion"><span class="hs-identifier hs-var">cProjectVersion</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;:\n\t&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-107"></span><span>      </span><span class="annot"><span class="annottext">ShowS -&gt; ShowS -&gt; ShowS
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">ShowS
</span><a href="#local-6989586621680778648"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="annot"><span class="annottext">ShowS -&gt; ShowS -&gt; ShowS
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#showString"><span class="hs-identifier hs-var">showString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\n\n&quot;</span></span><span>
</span><span id="line-108"></span><span>      </span><span class="annot"><span class="annottext">ShowS -&gt; ShowS -&gt; ShowS
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#showString"><span class="hs-identifier hs-var">showString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;Please report this as a GHC bug:  https://www.haskell.org/ghc/reportabug\n&quot;</span></span><span>
</span><span id="line-109"></span><span>
</span><span id="line-110"></span><span id="local-6989586621680778738"><span class="annot"><a href="GHC.Utils.Panic.Plain.html#throwPlainGhcException"><span class="hs-identifier hs-type">throwPlainGhcException</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#PlainGhcException"><span class="hs-identifier hs-type">PlainGhcException</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680778738"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-111"></span><span id="throwPlainGhcException"><span class="annot"><span class="annottext">throwPlainGhcException :: forall a. PlainGhcException -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#throwPlainGhcException"><span class="hs-identifier hs-var hs-var">throwPlainGhcException</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PlainGhcException -&gt; a
forall a e. Exception e =&gt; e -&gt; a
</span><a href="../../base/src/GHC.Exception.html#throw"><span class="hs-identifier hs-var">Exception.throw</span></a></span><span>
</span><span id="line-112"></span><span>
</span><span id="line-113"></span><span class="hs-comment">-- | Panics and asserts.</span><span>
</span><span id="line-114"></span><span id="local-6989586621680778733"><span class="annot"><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-type">panic</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#sorry"><span class="hs-identifier hs-type">sorry</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Utils.Panic.Plain.html#pgmError"><span class="hs-identifier hs-type">pgmError</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680778733"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-115"></span><span id="panic"><span class="annot"><span class="annottext">panic :: forall a. String -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var hs-var">panic</span></a></span></span><span>    </span><span id="local-6989586621680778639"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778639"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IO a -&gt; a
forall a. IO a -&gt; a
</span><a href="../../base/src/GHC.IO.Unsafe.html#unsafeDupablePerformIO"><span class="hs-identifier hs-var">unsafeDupablePerformIO</span></a></span><span> </span><span class="annot"><span class="annottext">(IO a -&gt; a) -&gt; IO a -&gt; a
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-116"></span><span>   </span><span id="local-6989586621680778637"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621680778637"><span class="hs-identifier hs-var">stack</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Ptr CostCentreStack -&gt; IO [String]
</span><a href="../../base/src/GHC.Stack.CCS.html#ccsToStrings"><span class="hs-identifier hs-var">ccsToStrings</span></a></span><span> </span><span class="annot"><span class="annottext">(Ptr CostCentreStack -&gt; IO [String])
-&gt; IO (Ptr CostCentreStack) -&gt; IO [String]
forall (m :: * -&gt; *) a b. Monad m =&gt; (a -&gt; m b) -&gt; m a -&gt; m b
</span><a href="../../base/src/GHC.Base.html#%3D%3C%3C"><span class="hs-operator hs-var">=&lt;&lt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; IO (Ptr CostCentreStack)
forall dummy. dummy -&gt; IO (Ptr CostCentreStack)
</span><a href="../../base/src/GHC.Stack.CCS.html#getCurrentCCS"><span class="hs-identifier hs-var">getCurrentCCS</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778639"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-117"></span><span>   </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">[String] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621680778637"><span class="hs-identifier hs-var">stack</span></a></span><span>
</span><span id="line-118"></span><span>      </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">PlainGhcException -&gt; IO a
forall a. PlainGhcException -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#throwPlainGhcException"><span class="hs-identifier hs-var">throwPlainGhcException</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PlainGhcException
</span><a href="GHC.Utils.Panic.Plain.html#PlainPanic"><span class="hs-identifier hs-var">PlainPanic</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778639"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-119"></span><span>      </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">PlainGhcException -&gt; IO a
forall a. PlainGhcException -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#throwPlainGhcException"><span class="hs-identifier hs-var">throwPlainGhcException</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PlainGhcException
</span><a href="GHC.Utils.Panic.Plain.html#PlainPanic"><span class="hs-identifier hs-var">PlainPanic</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778639"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\n'</span></span><span> </span><span class="annot"><span class="annottext">Char -&gt; ShowS
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">[String] -&gt; String
</span><a href="../../base/src/GHC.Stack.CCS.html#renderStack"><span class="hs-identifier hs-var">renderStack</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621680778637"><span class="hs-identifier hs-var">stack</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-120"></span><span>
</span><span id="line-121"></span><span id="sorry"><span class="annot"><span class="annottext">sorry :: forall a. String -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#sorry"><span class="hs-identifier hs-var hs-var">sorry</span></a></span></span><span>    </span><span id="local-6989586621680778631"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778631"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PlainGhcException -&gt; a
forall a. PlainGhcException -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#throwPlainGhcException"><span class="hs-identifier hs-var">throwPlainGhcException</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PlainGhcException
</span><a href="GHC.Utils.Panic.Plain.html#PlainSorry"><span class="hs-identifier hs-var">PlainSorry</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778631"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-122"></span><span id="pgmError"><span class="annot"><span class="annottext">pgmError :: forall a. String -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#pgmError"><span class="hs-identifier hs-var hs-var">pgmError</span></a></span></span><span> </span><span id="local-6989586621680778630"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778630"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PlainGhcException -&gt; a
forall a. PlainGhcException -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#throwPlainGhcException"><span class="hs-identifier hs-var">throwPlainGhcException</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PlainGhcException
</span><a href="GHC.Utils.Panic.Plain.html#PlainProgramError"><span class="hs-identifier hs-var">PlainProgramError</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778630"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-123"></span><span>
</span><span id="line-124"></span><span id="local-6989586621680778629"><span class="annot"><a href="GHC.Utils.Panic.Plain.html#cmdLineError"><span class="hs-identifier hs-type">cmdLineError</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680778629"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-125"></span><span id="cmdLineError"><span class="annot"><span class="annottext">cmdLineError :: forall a. String -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#cmdLineError"><span class="hs-identifier hs-var hs-var">cmdLineError</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">IO a -&gt; a
forall a. IO a -&gt; a
</span><a href="../../base/src/GHC.IO.Unsafe.html#unsafeDupablePerformIO"><span class="hs-identifier hs-var">unsafeDupablePerformIO</span></a></span><span> </span><span class="annot"><span class="annottext">(IO a -&gt; a) -&gt; (String -&gt; IO a) -&gt; String -&gt; a
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; IO a
forall a. String -&gt; IO a
</span><a href="GHC.Utils.Panic.Plain.html#cmdLineErrorIO"><span class="hs-identifier hs-var">cmdLineErrorIO</span></a></span><span>
</span><span id="line-126"></span><span>
</span><span id="line-127"></span><span id="local-6989586621680778717"><span class="annot"><a href="GHC.Utils.Panic.Plain.html#cmdLineErrorIO"><span class="hs-identifier hs-type">cmdLineErrorIO</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="#local-6989586621680778717"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-128"></span><span id="cmdLineErrorIO"><span class="annot"><span class="annottext">cmdLineErrorIO :: forall a. String -&gt; IO a
</span><a href="GHC.Utils.Panic.Plain.html#cmdLineErrorIO"><span class="hs-identifier hs-var hs-var">cmdLineErrorIO</span></a></span></span><span> </span><span id="local-6989586621680778625"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778625"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-129"></span><span>  </span><span id="local-6989586621680778624"><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621680778624"><span class="hs-identifier hs-var">stack</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Ptr CostCentreStack -&gt; IO [String]
</span><a href="../../base/src/GHC.Stack.CCS.html#ccsToStrings"><span class="hs-identifier hs-var">ccsToStrings</span></a></span><span> </span><span class="annot"><span class="annottext">(Ptr CostCentreStack -&gt; IO [String])
-&gt; IO (Ptr CostCentreStack) -&gt; IO [String]
forall (m :: * -&gt; *) a b. Monad m =&gt; (a -&gt; m b) -&gt; m a -&gt; m b
</span><a href="../../base/src/GHC.Base.html#%3D%3C%3C"><span class="hs-operator hs-var">=&lt;&lt;</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; IO (Ptr CostCentreStack)
forall dummy. dummy -&gt; IO (Ptr CostCentreStack)
</span><a href="../../base/src/GHC.Stack.CCS.html#getCurrentCCS"><span class="hs-identifier hs-var">getCurrentCCS</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778625"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-130"></span><span>  </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">[String] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621680778624"><span class="hs-identifier hs-var">stack</span></a></span><span>
</span><span id="line-131"></span><span>    </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">PlainGhcException -&gt; IO a
forall a. PlainGhcException -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#throwPlainGhcException"><span class="hs-identifier hs-var">throwPlainGhcException</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PlainGhcException
</span><a href="GHC.Utils.Panic.Plain.html#PlainCmdLineError"><span class="hs-identifier hs-var">PlainCmdLineError</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778625"><span class="hs-identifier hs-var">x</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-132"></span><span>    </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">PlainGhcException -&gt; IO a
forall a. PlainGhcException -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#throwPlainGhcException"><span class="hs-identifier hs-var">throwPlainGhcException</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PlainGhcException
</span><a href="GHC.Utils.Panic.Plain.html#PlainCmdLineError"><span class="hs-identifier hs-var">PlainCmdLineError</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778625"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\n'</span></span><span> </span><span class="annot"><span class="annottext">Char -&gt; ShowS
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">[String] -&gt; String
</span><a href="../../base/src/GHC.Stack.CCS.html#renderStack"><span class="hs-identifier hs-var">renderStack</span></a></span><span> </span><span class="annot"><span class="annottext">[String]
</span><a href="#local-6989586621680778624"><span class="hs-identifier hs-var">stack</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-133"></span><span>
</span><span id="line-134"></span><span class="hs-comment">-- | Throw a failed assertion exception for a given filename and line number.</span><span>
</span><span id="line-135"></span><span id="local-6989586621680778715"><span class="annot"><a href="GHC.Utils.Panic.Plain.html#assertPanic"><span class="hs-identifier hs-type">assertPanic</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621680778715"><span class="hs-identifier hs-type">a</span></a></span></span><span>
</span><span id="line-136"></span><span id="assertPanic"><span class="annot"><span class="annottext">assertPanic :: forall a. String -&gt; Int -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#assertPanic"><span class="hs-identifier hs-var hs-var">assertPanic</span></a></span></span><span> </span><span id="local-6989586621680778620"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778620"><span class="hs-identifier hs-var">file</span></a></span></span><span> </span><span id="local-6989586621680778619"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680778619"><span class="hs-identifier hs-var">line</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-137"></span><span>  </span><span class="annot"><span class="annottext">AssertionFailed -&gt; a
forall a e. Exception e =&gt; e -&gt; a
</span><a href="../../base/src/GHC.Exception.html#throw"><span class="hs-identifier hs-var">Exception.throw</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; AssertionFailed
</span><a href="../../base/src/GHC.IO.Exception.html#AssertionFailed"><span class="hs-identifier hs-var">Exception.AssertionFailed</span></a></span><span>
</span><span id="line-138"></span><span>           </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;ASSERT failed! file &quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621680778620"><span class="hs-identifier hs-var">file</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;, line &quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621680778619"><span class="hs-identifier hs-var">line</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-139"></span></pre></body></html>